package com.codechuan.demo.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.Locale;

public class DateUtil {

    public static Long stringTimeParseLongTime(String dateTimeString) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
        LocalDateTime dateTime = LocalDateTime.parse(dateTimeString, formatter);
        return dateTime.atZone(ZoneId.systemDefault()).toEpochSecond();
    }


    public static String stringTimeParseLongTimeTwo(String dateTimeString) {
        long timestamp = Long.parseLong(dateTimeString); // 示例时间戳
        Instant instant = Instant.ofEpochMilli(timestamp);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm").withZone(ZoneId.systemDefault());
        return formatter.format(instant);
    }

    public static String LongTimeParseStingTime(Long dateTimeLong) {
        // 时间戳（毫秒）
        long timestamp = dateTimeLong;

        // 使用Instant转换为标准的UTC时间
        Instant instant = Instant.ofEpochMilli(timestamp);

        // 转换为本地日期时间（默认时区）
        LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());

        // 如果需要其他格式，可以使用DateTimeFormatter
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        return localDateTime.format(formatter);
    }


    public static String LongTimeParseStingTimeTwo(Long dateTimeLong) {
        // 时间戳（毫秒）
        long timestamp = dateTimeLong;

        // 使用Instant转换为标准的UTC时间
        Instant instant = Instant.ofEpochMilli(timestamp);

        // 转换为本地日期时间（默认时区）
        LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());

        // 如果需要其他格式，可以使用DateTimeFormatter
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
        return localDateTime.format(formatter);
    }

    public static Date passDate(String time) {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
        try {
            return format.parse(time);
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }
    }
}
